home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2 Examples.sit
/
Raven 1.2 Examples
/
Quill
/
Source
/
ResourceTable.h
< prev
next >
Wrap
C/C++ Source or Header
|
1997-07-27
|
4KB
|
151 lines
/*
* File: ResourceTable.h
* Summary: THierarchicalTable subclass displaying the resources in a document.
* Written by: Jesse Jones
*
* Copyright ゥ 1996-1997 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <2> 5/04/97 JDJ Added mPens.
* <1> 1/17/96 JDJ Created
*/
#pragma once
#include <ZDragSource.h>
#include <ZDragTarget.h>
#include <ZEditableObject.h>
#include <ZHierarchicalTable.h>
//-----------------------------------
// Forward References
//
class CResourceSubNode;
class TGWorld;
// ===================================================================================
// class CResourceTable
// ===================================================================================
class CResourceTable : public THierarchicalTable, public MEditableObject<CResourceTable>, public MDragSource, public MDragTarget {
typedef THierarchicalTable Inherited;
//-----------------------------------
// Initialization/Destruction
//
public:
virtual ~CResourceTable();
CResourceTable(const string& name, TView* superView, const TRect& frame,
MCommander* super);
//-----------------------------------
// New API
//
public:
CResourceSubNode* GetWindows() {return mWindows;}
CResourceSubNode* GetViews() {return mViews;}
CResourceSubNode* GetTextTraits() {return mTextTraits;}
CResourceSubNode* GetPens() {return mPens;}
//-----------------------------------
// THierarchicalTable API
//
protected:
virtual void Invariant() const;
virtual void OnReanimated();
virtual bool OnMouseDown(const TMouseEvent& event);
virtual bool OnContextMenu(const TMouseEvent& event);
virtual bool OnKeyDown(const TKeyEvent& event);
virtual bool OnMenuCommand(const MenuCommand& command);
virtual bool OnCommandStatus(const MenuCommand& command, SCommandStatus& status);
//-----------------------------------
// MEditableObject API
//
public:
virtual bool HasSelection() const;
protected:
virtual void OnCopy(OSType type, TOutStream& stream);
virtual void OnPaste(OSType type, TInStream& stream);
virtual void OnClear();
virtual ulong GetCopyCount() const;
virtual OSType GetCopyType(ulong index) const;
virtual ulong GetPasteCount() const;
virtual OSType GetPasteType(ulong index) const;
//-----------------------------------
// MDragSource API
//
protected:
virtual void OnAddDragData(TDragSession& session, const TMouseEvent& event);
virtual void OnDragStop(const TMouseEvent& event, bool dragged);
//-----------------------------------
// MDragTarget API
//
protected:
virtual WindowRef OnGetDragWindow() const;
virtual TRegion OnGetDropRegion();
virtual bool OnCanAcceptDrag(ItemReference item, const TDragSession& session);
virtual void OnDragReceive(const TDragSession& session);
//-----------------------------------
// TReanimator Support
//
public:
static MReanimatable* Create(MReanimatable* parent);
//-----------------------------------
// Edit Commands API
//
public:
typedef THandle SState;
SState GetState() const;
void SetState(const SState& state);
//-----------------------------------
// Internal API
//
protected:
void DoChangeInfo();
//-----------------------------------
// Member Data
//
protected:
CResourceSubNode* mWindows;
CResourceSubNode* mViews;
CResourceSubNode* mTextTraits;
CResourceSubNode* mPens;
TGWorld* mDragImage;
};